﻿// DigitalDesign
// Project: InformationBoard
// Developer: Baevskih Aleksandr
// Created: 13.11.2011
// Last change: 21.11.2011

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Channels;
using System.Text;

namespace Server
{
    // ПРИМЕЧАНИЕ. Команду "Переименовать" в меню "Рефакторинг" можно использовать для одновременного изменения имени интерфейса "IVideoServices" в коде и файле конфигурации.
    [ServiceContract]
    public interface IVideoService
    {
        #region Playlist
        
        [OperationContract]
        void AddPlaylist(DateTime StartTime, DateTime EndTime, int VideoID, int ClientID, int DayOfWeekID);
      
        [OperationContract]
        List<PlaylistWarp> GetPlaylist(int ClientID, string DayOfWeek);

        [OperationContract]
        List<PlaylistWarp> SendPlaylist(int ClientID, string DayOfWeek);

        [OperationContract]
        void DeletePlaylist(int PlaylistID);

        #endregion
        #region Video

        [OperationContract]
        int GetVideoBufferSize();

        [OperationContract]
        void SetVideoBufferSize(int Value);

        [OperationContract]
        void SetVideoDirectory(string Directory);

        [OperationContract]
        string GetVideoDirectory();

        [OperationContract]
        void AddVideo(string FileName, string Description);

        [OperationContract]
        bool SendVideo(int VideoID, int ClientID, out byte[] Buffer, out int BufferSize);

        [OperationContract]
        VideoWarp GetListOfVideo();

        [OperationContract]
        VideoWarp GetListOfVideoOnClient(int ClientID);

        #endregion
    }
}
